﻿#define  _CRT_SECURE_NO_WARNINGS
//给你一个四位 正 整数 num 。请你使用 num 中的 数位 ，将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有 前导 0 ，且 num 中 所有 数位都必须使用。
//
//比方说，给你 num = 2932 ，你拥有的数位包括：两个 2 ，一个 9 和一个 3 。一些可能的 [new1, new2] 数对为 [22, 93]，[23, 92]，[223, 9] 和 [2, 329] 。
//请你返回可以得到的 new1 和 new2 的 最小 和。
//
//来源：力扣（LeetCode）
//链接：https ://leetcode.cn/problems/minimum-sum-of-four-digit-number-after-splitting-digits
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
int cmp(int* e1, int* e2) {
    return *e1 - *e2;
}
int minimumSum(int num) {
    int arr[4] = { 0 };
    while (num) {
        arr[0] = num % 10;
        num /= 10;
        arr[1] = num % 10;
        num /= 10;
        arr[2] = num % 10;
        num /= 10;
        arr[3] = num % 10;
        num /= 10;
    }
    qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof(arr[0]), cmp);
    int sum = 0;
    sum = arr[0] * 10 + arr[1] * 10 + arr[2] + arr[3];
    return sum;
}